package com.share.factory.strategy;

import com.share.common.enums.HttpStatusEnum;
import com.share.exception.BaseException;
import com.share.util.common.StringUtils;

import java.time.Instant;

public abstract class AbstractAuthStategy implements AuthStrategy {
    /**
     * 模板方法
     */
    public final void commonCode(String code) {
        //定义必须方法
        check(code);
        //扩展抽象方法
        thirdPartyLogin(code);
    }

    /**
     * 检验方法
     */
    private void check(String code){
        if(StringUtils.isEmpty(code)){
            throw new BaseException(HttpStatusEnum.NO_CONTENT,"code为空", Instant.now());
        }
    }
}
